package com.delivery.deliverysystem.config;

import com.lly835.bestpay.config.AliPayConfig;
import com.lly835.bestpay.config.WxPayConfig;
import com.lly835.bestpay.service.impl.BestPayServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

/**
 * 支付配置类
 *
 * 创建支付服务类并注入阿里或微信的账号信息
 */
@Component
public class BestPayConfig {

    @Autowired
    private WxAccountConfig wxAccountConfig;

    @Autowired
     AliAccountConfig aliAccountConfig;

//    private AliPayConfig aliPayConfig;
//    private WxPayConfig wxPayConfig;



    @Bean
    public BestPayServiceImpl bestPayService(WxPayConfig wxPayConfig) {

        AliPayConfig aliPayConfig = new AliPayConfig();
//        aliPayConfig.setSandbox(true);  //开启沙盒模式，默认为false
        aliPayConfig.setAppId(aliAccountConfig.getAppId());
        aliPayConfig.setPrivateKey(aliAccountConfig.getPrivateKey());
        aliPayConfig.setAliPayPublicKey(aliAccountConfig.getAliPayPublicKey());
        aliPayConfig.setNotifyUrl(aliAccountConfig.getNotifyUrl());
        aliPayConfig.setReturnUrl(aliAccountConfig.getReturnUrl());

        BestPayServiceImpl bestPayService = new BestPayServiceImpl();
        bestPayService.setWxPayConfig(wxPayConfig);
        bestPayService.setAliPayConfig(aliPayConfig);
        return bestPayService;
    }

    @Bean
    public WxPayConfig wxPayConfig() {
        WxPayConfig wxPayConfig = new WxPayConfig();
        wxPayConfig.setAppId(wxAccountConfig.getAppId());
        wxPayConfig.setMchId(wxAccountConfig.getMchId()); //商户id
        wxPayConfig.setMchKey(wxAccountConfig.getMchKey());  //商户密钥
        wxPayConfig.setNotifyUrl(wxAccountConfig.getNotifyUrl());   //接受异步通知地址
        wxPayConfig.setReturnUrl(wxAccountConfig.getReturnUrl());
        return wxPayConfig;
    }

//    public void updateAliPayConfig(AliPayConfig newConfig) {
//        this.aliPayConfig = newConfig;
//    }
//
//    public void updateWxPayConfig(WxPayConfig newConfig) {
//        this.wxPayConfig = newConfig;
//    }

}
